package com.boot.common.utils;

import com.boot.common.constants.Code;
import com.boot.common.exception.CommonException;
import org.apache.commons.lang3.StringUtils;

import java.util.List;

/**
 * @author Cheng JiYe
 * @description: 功能：参数检查的工具类
 * @date 2020/10/3 22:36
 */
public class PreconditionsUtils {

    /**
     * 检查obj是否为空，为空抛出异常。
     *
     * @param obj  对象
     * @param msg  错误消息
     * @param code 错误类型
     */
    public static void checkNotNull(Object obj, String msg, Code code) {
        if (obj == null) {
            throw new CommonException(code, msg);
        }
        if (obj instanceof String) {
            String str = (String) obj;
            if (StringUtils.isBlank(str)) {
                throw new CommonException(code, msg);
            }
        }
        if (obj instanceof List) {
            List list = (List) obj;
            if (list.size() == 0) {
                throw new CommonException(code, msg);
            }
        }
    }

    /**
     * 检查condition是否为空，为空抛出异常。
     *
     * @param obj 对象
     * @param msg 错误消息
     */
    public static void checkNotNull(Object obj, String msg) {
        checkNotNull(obj, msg, Code.ReqFailure);
    }

}
